﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using UricaoWeb.LogicaDeNegocios.Checkin_Checkout;
using UricaoWeb.Datos.Excepciones.CheckinCheckout;

namespace UricaoWeb.Presentacion
{
    public partial class API_Checkout_pago2 : API_Seguridad_Principal
    {
        /// <summary>
        /// Metodo para confirmar la existencia de una reservacion
        /// Se activa al presionar el boton "Realizar Pago", evalua que el valor introducido sea numerico
        /// y no se encuentre la casilla vacia para luego verificar la existencia del codigo de reservacion
        /// y pasar a mostrar los consumos realizados
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            var master = Master as MasterPage;
            if (master != null)
            {
                master.actualizar_label();
            }
            base.validar_usuario();
            montototal.Text = Convert.ToString(ControllerCheckout._TotalConsumos);

        }

        /// <summary>
        /// Metodo para registrar el pago y realizar el checkout de la reservacion
        /// Se activa al presionar el boton "Aceptar", evalua que todos los campos esten llenos
        /// y procede a registrar el checkout en caso de ser exitoso el proceso
        /// redirecciona a la pagina principal de checkout
        /// </summary>
        protected void Aceptar(object sender, EventArgs e)
        {
            int numero;
            bool resultado;
            try
            {
                if (ListaBanco.SelectedIndex != 0)
                {
                    bool Convertvalor = int.TryParse(tarjetahabiente.Text, out numero);
                    if (!Convertvalor && !tarjetahabiente.Text.Equals(""))
                    {
                        Convertvalor = int.TryParse(numTarjeta.Text, out numero);
                        if (Convertvalor && !numTarjeta.Text.Equals("") && (numTarjeta.Text.Length == 8))
                        {
                            Convertvalor = int.TryParse(cedula.Text, out numero);
                            if (Convertvalor && !cedula.Text.Equals(""))
                            {
                                resultado = ControllerCheckout.RelizarCheckout();

                                if (resultado)
                                {
                                    Response.Redirect("API_checkout_principal2.aspx");
                                }
                                else
                                {
                                    mensaje.Text = "No se logro procesar el pago";
                                }
                            }
                            else
                            {
                                mensaje.Text = "Debe ingresar cedula";    
                            }
                        }
                        else
                        {
                            mensaje.Text = "Numero tarjeta debe ser numerico y de 8 digitos";
                        }
                    }
                    else
                    {
                        mensaje.Text = "El nombre no puede contener caracteres numericos o especiales";
                    }
                }
                else
                {
                    mensaje.Text = "Debe seleccionar un Banco";
                }
            }
            catch (CheckoutException ex)
            {
                mensaje.Text = ex.Message;
            }


        }

        /// <summary>
        /// metodo que se activa al presionar el boton cancelar para cambiar de ventana
        /// y regresar a la ventana de consumos de la resevacion
        /// </summary>
        protected void Cancelar(object sender, EventArgs e)
        {
            Response.Redirect("API_checkout_consumo2.aspx");
        }
    }
}